fix(agents): hide disabled agents everywhere and reflect install/removal live#82
Merged
Conversation
runScan (startup + window focus) now also refetches agents, so an agent config dir added or removed outside the app shows up without a restart (detect() is live). The Detected-only reconcile is now bidirectional: it disables agents that aren't detected and re-enables ones it had disabled once they are detected again (e.g. a config dir removed then restored), keeping the snapshot in sync. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Disabling an agent (including ones Detected-only auto-disables) now hides it consistently across all surfaces, not just the Overview: - Install targets (Marketplace, install dialogs, extension detail) filter by detected && enabled, so disabled agents are not offered. - The Agents sidebar hides disabled agents, cross-referencing the agent store since AgentDetail carries no enabled field (defaults to visible when unknown so the list never flashes empty). - Backend "install to all detected" fallbacks skip disabled agents. With every surface respecting enabled, the per-view agentVisibility checks (detected ? enabled && detected : enabled) are redundant and removed; Detected-only hiding is now carried entirely by the reconcile that disables undetected agents. One concept (enabled), one place that owns visibility to enabled. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #81 (Agent Visibility). That PR shipped the Detected only toggle and made it disable undetected agents, but
disabledstayed a half-respected, Overview-only concept β a disabled agent still showed up in Marketplace, the Agents page, and install targets. This PR makes that consistent and adds live detection.Two related fixes that make the Detected only / agent-disable behaviour consistent and live.
Disabled agents are now hidden everywhere
In 21691dc. Disabling an agent (or Detected only auto-disabling an undetected one) used to only hide it from the Overview, sidebar, and Extensions filter β it still showed up in Marketplace, the Agents page, and install targets, which gate on
detectedonly. Now every consumption surface respectsenabled:detected && enabled, so disabled agents aren't offered.AgentDetailhas noenabledfield; defaults to visible when unknown so the list never flashes empty).With every surface respecting
enabled, the per-viewagentVisibilityspecial-casing (detected ? enabled && detected : enabled) is redundant and removed β Detected only hiding is now carried entirely by the reconcile that disables undetected agents. One concept (enabled), one place that owns visibility β enabled.Agent install/removal is reflected live
In 41f3dc7.
runScan(startup + window focus) now also refetches agents, so adding or removing an agent's config dir outside the app shows up without a restart (detect()is live). The Detected only reconcile is now bidirectional: it disables undetected agents and re-enables ones it had disabled once they're detected again (e.g. a config dir removed then restored).Verification
tsc,biome, andvitest(231 tests) all pass.π€ Generated with Claude Code